/**
 * 
 */
package com.hera.process.config.rest.controller;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.hera.base.domain.MensajeJSON;
import com.hera.base.rest.controller.BaseController;
import com.hera.base.util.Constantes;
import com.hera.base.util.FiltroDTO;
import com.hera.process.config.domain.BusinessDay;
import com.hera.process.config.domain.BusinessHour;
import com.hera.process.config.domain.Calendar;
import com.hera.process.config.domain.Condition;
import com.hera.process.config.domain.Datasource;
import com.hera.process.config.domain.Department;
import com.hera.process.config.domain.Holiday;
import com.hera.process.config.domain.LoginMethod;
import com.hera.process.config.domain.Organization;
import com.hera.process.config.domain.Parameter;
import com.hera.process.config.domain.ParameterDetail;
import com.hera.process.config.domain.Secuence;
import com.hera.process.config.domain.SistVariable;
import com.hera.process.config.service.BusinessDayService;
import com.hera.process.config.service.BusinessHourService;
import com.hera.process.config.service.CalendarService;
import com.hera.process.config.service.ConditionService;
import com.hera.process.config.service.DataSourceService;
import com.hera.process.config.service.DepartmenService;
import com.hera.process.config.service.DetailParameterService;
import com.hera.process.config.service.HolidayService;
import com.hera.process.config.service.LoginMethodService;
import com.hera.process.config.service.OrganizationService;
import com.hera.process.config.service.ParameterService;
import com.hera.process.config.service.SecuenceService;
import com.hera.process.config.service.SistVariableService;
import com.hera.process.config.service.ThemeService;

/**
 * @author cmontes
 *
 */
@Controller
@RequestMapping("config")
public class ConfigController extends BaseController {

	static final Logger logger = Logger.getLogger(ConfigController.class);
	
	@Autowired
	private BusinessDayService businessDayService;
	
	@Autowired
	private ParameterService parameterService;
	
	
	@Autowired
	private DetailParameterService detailparameterService;

///	@Autowired
///	private ParameterDetailService ParameterDetailService;
	

	
	@Autowired
	private CalendarService calendarService;
	
	@Autowired
	private DataSourceService dataSourceService;
	
	
	@Autowired
	private DepartmenService departmenService;
	
	@Autowired
	private BusinessHourService businesshourService;
	
	@Autowired
	private ConditionService conditionservice;
	

	
	@Autowired
	private HolidayService holidayservice;
	
//	@Autowired
//	private ListService listService;
	
	@Autowired
	private OrganizationService organizationservice;
	
	
	@Autowired
	private SecuenceService secuenceservice;
	
	@Autowired
	private SistVariableService sistvariableservice;
	
	
	
	@Autowired
	private ThemeService themeservice;
	
	
	@Autowired
	private LoginMethodService loginmethod;
	

	

	
	/*
	 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	 /////////////////////////////////////////////// BUSSYNESSDAY SERVICE ////////////////////////////////////////////////////////////////////////////
	 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	 */
	
	@RequestMapping(value = "busynessday/list", method = RequestMethod.POST)
    @ResponseBody
    public MensajeJSON listBusinessDays(@RequestBody FiltroDTO filtroDTO) {
		logger.info("listBusinessDays  " + filtroDTO.toString());
		
		return obtenerMensajeJSON(businessDayService.findAll(filtroDTO));
    }

	@RequestMapping(value = "busynessday/save", method = RequestMethod.POST)
    @ResponseBody
    public MensajeJSON saveBusinessDay(@RequestBody BusinessDay busynessday) {
		logger.info("grabando el parametro....");
		businessDayService.save(busynessday);
		return obtenerMensajeJSON(busynessday);		
    }
	
	@RequestMapping(value = "busynessday/update", method = RequestMethod.POST)
    @ResponseBody
    public MensajeJSON updateBusinessDay(@RequestBody BusinessDay busynessday) {
		logger.info("grabando el parametro....");
		businessDayService.update(busynessday);
		return obtenerMensajeJSON(busynessday);		
    }
	
	@RequestMapping(value = "busynessday/delete", method = RequestMethod.POST)
    @ResponseBody
    public MensajeJSON deleteBusinessDay(@RequestBody BusinessDay busynessday) {
		logger.info("grabando el parametro....");
		businessDayService.delete(busynessday);
		return obtenerMensajeJSON(busynessday);		
    }
	
	
	/*
	 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	 /////////////////////////////////////////////// PARAMETER SERVICE //////////////////////////////////////////////////////////////////////////////////
	 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	 */
	
	@RequestMapping(value = "parameter/list", method = RequestMethod.POST)
    @ResponseBody
    public MensajeJSON listParameters(@RequestBody FiltroDTO filtroDTO) {
		logger.info("listParameters  " + filtroDTO.toString());
		
		return obtenerMensajeJSON(parameterService.findAll(filtroDTO));
    }

	@RequestMapping(value = "parameter/save", method = RequestMethod.POST)
    @ResponseBody
    public MensajeJSON saveUser(@RequestBody Parameter parameter) {
		logger.info("grabando el parametro....");
		parameterService.save(parameter);
		return obtenerMensajeJSON(parameter);		
    }
	
	@RequestMapping(value = "parameter/update", method = RequestMethod.POST)
    @ResponseBody
    public MensajeJSON updateUser(@RequestBody Parameter parameter) {
		logger.info("grabando el parametro....");
		parameterService.update(parameter);
		return obtenerMensajeJSON(parameter);		
    }
	
	@RequestMapping(value = "parameter/delete", method = RequestMethod.POST)
    @ResponseBody
    public MensajeJSON deleteUser(@RequestBody Parameter parameter) {
		logger.info("grabando el parametro....");
		parameterService.delete(parameter);
		return obtenerMensajeJSON(parameter);		
    }
	
	/*
	 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	 /////////////////////////////////////////////// DETAIL PARAMETER ////////////////////////////////////////////////////////////////////////////////
	 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	 */
	
	@RequestMapping(value = "detailparameter/list", method = RequestMethod.POST)
    @ResponseBody
    public MensajeJSON listParameterDetails(@RequestBody FiltroDTO filtroDTO) {
		logger.info("listParameterDetails  " + filtroDTO.toString());
		
		return obtenerMensajeJSON(detailparameterService.findAll(filtroDTO));
    }

	@RequestMapping(value = "detailparameter/save", method = RequestMethod.POST)
    @ResponseBody
    public MensajeJSON saveParameterDetail(@RequestBody ParameterDetail parameterdetail) {
		logger.info("grabando el parametro....");
		detailparameterService.save(parameterdetail);
		return obtenerMensajeJSON(parameterdetail);		
    }
	
	@RequestMapping(value = "detailparameter/update", method = RequestMethod.POST)
    @ResponseBody
    public MensajeJSON updateParameterDetail(@RequestBody ParameterDetail parameterdetail) {
		logger.info("grabando el parametro....");
		detailparameterService.update(parameterdetail);
		return obtenerMensajeJSON(parameterdetail);		
    }
	
	@RequestMapping(value = "detailparameter/delete", method = RequestMethod.POST)
    @ResponseBody
    public MensajeJSON deleteParameterDetail(@RequestBody ParameterDetail parameterdetail) {
		logger.info("grabando el parametro....");
		detailparameterService.delete(parameterdetail);
		return obtenerMensajeJSON(parameterdetail);		
    }
	
	@RequestMapping(value = "detailparameter/status", method = RequestMethod.POST)
    @ResponseBody
	public MensajeJSON findStatus(){
		logger.info("findbyIdList  ");
		return obtenerMensajeJSON(detailparameterService.findByIdParameter(Constantes.STATUS.ID));
	}
	
	@RequestMapping(value = "detailparameter/days", method = RequestMethod.POST)
    @ResponseBody
	public MensajeJSON findDays(){
		logger.info("findbyIdList  ");
		return obtenerMensajeJSON(detailparameterService.findByIdParameter(Constantes.DAYS.ID));
	}
	
	@RequestMapping(value = "detailparameter/meses", method = RequestMethod.POST)
    @ResponseBody
	public MensajeJSON findAños(){
		logger.info("findbyIdList  ");
		return obtenerMensajeJSON(detailparameterService.findByIdParameter(Constantes.Meses.ID));
	}
	
	@RequestMapping(value = "detailparameter/horas", method = RequestMethod.POST)
    @ResponseBody
	public MensajeJSON findHoras(){
		logger.info("findbyIdList  ");
		return obtenerMensajeJSON(detailparameterService.findByIdParameter(Constantes.Horas.ID));
	}

	@RequestMapping(value = "detailparameter/minutos", method = RequestMethod.POST)
    @ResponseBody
	public MensajeJSON findMinutos(){
		logger.info("findbyIdList  ");
		return obtenerMensajeJSON(detailparameterService.findByIdParameter(Constantes.Minutos.ID));
	}
	
	@RequestMapping(value = "detailparameter/tipoferiados", method = RequestMethod.POST)
    @ResponseBody
	public MensajeJSON findTipoFeriados(){
		logger.info("findbyIdList  ");
		return obtenerMensajeJSON(detailparameterService.findByIdParameter(Constantes.TipoFeriados.ID));
	}
	
	@RequestMapping(value = "detailparameter/metodoslogin", method = RequestMethod.POST)
    @ResponseBody
	public MensajeJSON findMetodosLogin(){
		logger.info("findbyIdList  ");
		return obtenerMensajeJSON(detailparameterService.findByIdParameter(Constantes.MetodosLogin.ID));
	}
	@RequestMapping(value = "detaillist/list", method = RequestMethod.POST)
    @ResponseBody
	public MensajeJSON findDetailList(@RequestBody ParameterDetail parameterdetail){
		logger.info("findDetailList  ");
		return obtenerMensajeJSON(detailparameterService.findByIdParameter(parameterdetail.getIdParameterDetail()));
	}

	
//	@RequestMapping(value = "detailparameter/listbyparameter", method = RequestMethod.POST)
//    @ResponseBody
//    public MensajeJSON listDetailParameters(@RequestBody Parameter parameter) {
//				
//        return obtenerMensajeJSON(detailparameterService.findByIdParameter(parameter.getIdParameter()));
//    }

	/*
	 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	 /////////////////////////////////////////////// CALENDAR SERVICE //////////////////////////////////////////////////////////////////////////////////
	 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	 */
		
		@RequestMapping(value = "calendar/list", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON listCalendar(@RequestBody FiltroDTO filtroDTO) {
			logger.info("listCalendar  " + filtroDTO.toString());
			
			return obtenerMensajeJSON(calendarService.findAll(filtroDTO));
	    }
		
		@RequestMapping(value = "calendar/save", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON saveCalendar(@RequestBody Calendar calendar) {
			logger.info("grabando el parametro....");
			calendarService.save(calendar);
			return obtenerMensajeJSON(calendar);		
	    }
		
		@RequestMapping(value = "calendar/update", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON updateCalendar(@RequestBody Calendar calendar) {
			logger.info("grabando el parametro....");
			calendarService.update(calendar);
			return obtenerMensajeJSON(calendar);		
	    }
		
		@RequestMapping(value = "calendar/delete", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON deleteUser(@RequestBody Calendar calendar) {
			logger.info("grabando el parametro....");
			calendarService.delete(calendar);
			return obtenerMensajeJSON(calendar);		
	    }
	
		/*
		 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		 /////////////////////////////////////////////// DATASOURCE SERVICE //////////////////////////////////////////////////////////////////////////////
		 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		 */
		
		@RequestMapping(value = "datasource/list", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON listDataSource(@RequestBody FiltroDTO filtroDTO) {
			logger.info("listDataSource  " + filtroDTO.toString());
			
			return obtenerMensajeJSON(dataSourceService.findAll(filtroDTO));
	    }
		/*
		@RequestMapping(value = "parameter/list", method = RequestMethod.GET)
	    @ResponseBody
	    public List<Parameter> listParametersGet() {
			logger.info("listParameters");		
	        return parameterService.findAll();
	    }*/
		
		@RequestMapping(value = "datasource/save", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON saveDatasource(@RequestBody Datasource datasource) {
			logger.info("grabando el parametro....");
			dataSourceService.save(datasource);
			return obtenerMensajeJSON(datasource);		
	    }
		
		@RequestMapping(value = "datasource/update", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON updateDatasource(@RequestBody Datasource datasource) {
			logger.info("grabando el parametro....");
			dataSourceService.update(datasource);
			return obtenerMensajeJSON(datasource);		
	    }
		
		@RequestMapping(value = "datasource/delete", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON deleteDatasource(@RequestBody Datasource datasource) {
			logger.info("grabando el parametro....");
			dataSourceService.delete(datasource);
			return obtenerMensajeJSON(datasource);		
	    }
	
		
	
		/*
		 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		 /////////////////////////////////////////////// DEPARTMENT SERVICE //////////////////////////////////////////////////////////////////////////////
		 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		 */
		
		@RequestMapping(value = "department/list", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON listDepartment(@RequestBody FiltroDTO filtroDTO) {
			logger.info("listDepartment  " + filtroDTO.toString());
			
			return obtenerMensajeJSON(departmenService.findAll(filtroDTO));
	    }
		/*
		@RequestMapping(value = "parameter/list", method = RequestMethod.GET)
	    @ResponseBody
	    public List<Parameter> listParametersGet() {
			logger.info("listParameters");		
	        return parameterService.findAll();
	    }*/
		
		@RequestMapping(value = "department/save", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON saveDepartment(@RequestBody Department department) {
			logger.info("grabando el parametro....");
			departmenService.save(department);
			return obtenerMensajeJSON(department);		
	    }
		
		@RequestMapping(value = "department/update", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON updateDepartment(@RequestBody Department department) {
			logger.info("grabando el parametro....");
			departmenService.update(department);
			return obtenerMensajeJSON(department);		
	    }
		
		@RequestMapping(value = "department/delete", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON deleteDepartment(@RequestBody Department department) {
			logger.info("grabando el parametro....");
			departmenService.delete(department);
			return obtenerMensajeJSON(department);		
	    }
		
		
		/*
		 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		 /////////////////////////////////////////////// BUSINEES_HOUR SERVICE //////////////////////////////////////////////////////////////////////////////
		 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		 */
	
		
		@RequestMapping(value = "businesshour/list", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON listBusinessHours(@RequestBody FiltroDTO filtroDTO) {
			logger.info("listDepartment  " + filtroDTO.toString());
			
			return obtenerMensajeJSON(businesshourService.findAll(filtroDTO));
	    }
		
		@RequestMapping(value = "businesshour/save", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON saveBusinessHour(@RequestBody BusinessHour businesshour) {
			logger.info("grabando el parametro....");
			businesshourService.save(businesshour);
			return obtenerMensajeJSON(businesshour);		
	    }
		
		@RequestMapping(value = "businesshour/update", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON updateBusinessHour(@RequestBody BusinessHour businesshour) {
			logger.info("grabando el parametro....");
			businesshourService.update(businesshour);
			return obtenerMensajeJSON(businesshour);
	    }
		
		@RequestMapping(value = "businesshour/delete", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON deleteBusinessHour(@RequestBody BusinessHour businesshour) {
			logger.info("grabando el parametro....");
			businesshourService.delete(businesshour);
			return obtenerMensajeJSON(businesshour);		
	    }
		
		/*
		 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		 /////////////////////////////////////////////// CONDITION SERVICE //////////////////////////////////////////////////////////////////////////////
		 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		 */
	
		
		@RequestMapping(value = "condition/list", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON listCondition(@RequestBody FiltroDTO filtroDTO) {
			logger.info("listCondition  " + filtroDTO.toString());
			
			return obtenerMensajeJSON(conditionservice.findAll(filtroDTO));
	    }
		
		@RequestMapping(value = "condition/save", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON saveCondition(@RequestBody Condition condition) {
			logger.info("grabando el parametro....");
			conditionservice.save(condition);
			return obtenerMensajeJSON(condition);		
	    }
		
		@RequestMapping(value = "condition/update", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON updateCondition(@RequestBody Condition condition) {
			logger.info("grabando el parametro....");
			conditionservice.update(condition);
			return obtenerMensajeJSON(condition);
	    }
		
		@RequestMapping(value = "condition/delete", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON deleteCondition(@RequestBody Condition condition) {
			logger.info("grabando el parametro....");
			conditionservice.delete(condition);
			return obtenerMensajeJSON(condition);		
	    }
		
		
		/*
		 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		 /////////////////////////////////////////////// HOLIDAY SERVICE //////////////////////////////////////////////////////////////////////////////
		 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		 */
	
		
		@RequestMapping(value = "holiday/list", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON listHolidays(@RequestBody FiltroDTO filtroDTO) {
			logger.info("listDynaform  " + filtroDTO.toString());
			
			return obtenerMensajeJSON(holidayservice.findAll(filtroDTO));
	    }
		
		@RequestMapping(value = "holiday/save", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON saveholHoliday(@RequestBody Holiday holiday) {
			logger.info("grabando el parametro....");
			holidayservice.save(holiday);
			return obtenerMensajeJSON(holiday);		
	    }
		
		@RequestMapping(value = "holiday/update", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON updatHoliday(@RequestBody Holiday holiday) {
			logger.info("grabando el parametro....");
			holidayservice.update(holiday);
			return obtenerMensajeJSON(holiday);
	    }
		
		@RequestMapping(value = "holiday/delete", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON deleteHoliday(@RequestBody Holiday holiday) {
			logger.info("grabando el parametro....");
			holidayservice.delete(holiday);
			return obtenerMensajeJSON(holiday);		
	    }
		
		/*
		 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		 /////////////////////////////////////////////// LIST SERVICE //////////////////////////////////////////////////////////////////////////////
		 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		 */
	
		
//		@RequestMapping(value = "list/list", method = RequestMethod.POST)
//	    @ResponseBody
//	    public List<Lists> lists(@RequestBody FiltroDTO filtroDTO) {
//			logger.info("listDynaform  " + filtroDTO.toString());
//			
//			return listService.findAll(filtroDTO);
//	    }
//		
//		@RequestMapping(value = "list/save", method = RequestMethod.POST)
//	    @ResponseBody
//	    public Lists saveLists(@RequestBody Lists list) {
//			logger.info("grabando el parametro....");
//			listService.save(list);
//			return list;		
//	    }
//		
//		@RequestMapping(value = "list/update", method = RequestMethod.POST)
//	    @ResponseBody
//	    public Lists updatLists(@RequestBody Lists list) {
//			logger.info("grabando el parametro....");
//			listService.update(list);
//			return list;
//	    }
//		
//		@RequestMapping(value = "list/delete", method = RequestMethod.POST)
//	    @ResponseBody
//	    public Lists deleteLists(@RequestBody Lists list) {
//			logger.info("grabando el parametro....");
//			listService.delete(list);
//			return list;		
//	    }
		
//	@RequestMapping(value = "secgroupmoduleasigsi/list", method = RequestMethod.POST)
//	@ResponseBody
//	public MensajeJSON listSecGroupModulesSiAsignados(
//			@RequestBody SecurityGroup securityGroup) {
//		logger.info("listSecuences  " + securityGroup.toString());
//
//		return obtenerMensajeJSON(secgroupmodule
//				.findAllModulosSiasignado(securityGroup));
//	}

//	@RequestMapping(value = "secgroupmoduleasigno/list", method = RequestMethod.POST)
//	@ResponseBody
//	public MensajeJSON listSecGroupModulesNoAsignados(
//			@RequestBody SecurityGroup securityGroup) {
//		logger.info("listSecuences  " + securityGroup.toString());
//
//		return obtenerMensajeJSON(secgroupmodule
//				.findAllModulosNoasignado(securityGroup));
//	}

//	@RequestMapping(value = "secgroupmodule/list", method = RequestMethod.POST)
//	@ResponseBody
//	public MensajeJSON listAddSecGroupModules(@RequestBody FiltroDTO filtroDTO) {
//		logger.info("listSecuences  " + filtroDTO.toString());
//
//		return obtenerMensajeJSON(secgroupmodule.findAll(filtroDTO));
//	}

//	@RequestMapping(value = "secgroupmodule/save", method = RequestMethod.POST)
//	@ResponseBody
//	public MensajeJSON saveAddSecGroupModule(
//			@RequestBody SecGroupModule scgmodule) {
//		logger.info("grabando el parametro....");
//		secgroupmodule.save(scgmodule);
//		return obtenerMensajeJSON(scgmodule);
//	}

		
		/*
		 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		 /////////////////////////////////////////////// ORGANIZATION SERVICE //////////////////////////////////////////////////////////////////////////////
		 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		 */
	
		
		@RequestMapping(value = "organization/list", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON listOrganizations(@RequestBody FiltroDTO filtroDTO) {
			logger.info("listDataSource  " + filtroDTO.toString());
			
			return obtenerMensajeJSON(organizationservice.findAll(filtroDTO));
	    }
		
		@RequestMapping(value = "organization/save", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON saveOrganization(@RequestBody Organization organization) {
			logger.info("grabando el parametro....");
			organizationservice.save(organization);
			return obtenerMensajeJSON(organization);		
	    }
		
		@RequestMapping(value = "organization/update", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON updateOrganization(@RequestBody Organization organization) {
			logger.info("grabando el parametro....");
			organizationservice.update(organization);
			return obtenerMensajeJSON(organization);		
	    }
		
		@RequestMapping(value = "organization/delete", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON deleteOrganization(@RequestBody Organization organization) {
			logger.info("grabando el parametro....");
			organizationservice.delete(organization);
			return obtenerMensajeJSON(organization);		
	    }
		
		@RequestMapping(value = "organization/listDepartmen", method = RequestMethod.POST)
		@ResponseBody
		public MensajeJSON listDepartmenOrganization(@RequestBody Organization organization) {
			logger.info("listDataSource  " + organization);
			return obtenerMensajeJSON(organizationservice.findDepartment(organization));
		}
		
		/*
		 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		 /////////////////////////////////////////////// SECUENCE SERVICE ////////////////////////////////////////////////////////////////////////////
		 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		 */
		
		
		@RequestMapping(value = "secuence/list", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON listSecuences(@RequestBody FiltroDTO filtroDTO) {
			logger.info("listSecuences  " + filtroDTO.toString());
			
			return obtenerMensajeJSON(secuenceservice.findAll(filtroDTO));
	    }
		
		@RequestMapping(value = "secuence/save", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON saveProcessSupervisor(@RequestBody Secuence sec) {
			logger.info("grabando el parametro....");
			secuenceservice.save(sec);
			return obtenerMensajeJSON(sec);		
	    }
		
		@RequestMapping(value = "secuence/update", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON updateProcessSupervisor(@RequestBody Secuence sec) {
			logger.info("grabando el parametro....");
			secuenceservice.update(sec);
			return obtenerMensajeJSON(sec);
	    }
		
		@RequestMapping(value = "secuence/delete", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON deleteProcessSupervisor(@RequestBody Secuence sec) {
			logger.info("grabando el parametro....");
			secuenceservice.delete(sec);
			return obtenerMensajeJSON(sec);		
	    }
		
		/*
		 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		 /////////////////////////////////////////////// SISTVARIABLE SERVICE ////////////////////////////////////////////////////////////////////////////
		 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		 */
		
		
		@RequestMapping(value = "sistvariable/list", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON listSistVariables(@RequestBody FiltroDTO filtroDTO) {
			logger.info("listSecuences  " + filtroDTO.toString());
			
			return obtenerMensajeJSON(sistvariableservice.findAll(filtroDTO));
	    }
		
		@RequestMapping(value = "sistvariable/save", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON saveSistVariable(@RequestBody SistVariable sistva) {
			logger.info("grabando el parametro....");
			sistvariableservice.save(sistva);
			return obtenerMensajeJSON(sistva);		
	    }
		
		@RequestMapping(value = "sistvariable/update", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON updateSistVariable(@RequestBody SistVariable sistva) {
			logger.info("grabando el parametro....");
			sistvariableservice.update(sistva);
			return obtenerMensajeJSON(sistva);
	    }
		
		@RequestMapping(value = "sistvariable/delete", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON deleteSistVariable(@RequestBody SistVariable sistva) {
			logger.info("grabando el parametro....");
			sistvariableservice.delete(sistva);
			return obtenerMensajeJSON(sistva);		
	    }
		
		
		
		
		/*
		 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		 /////////////////////////////////////////////// LOGIN METHODO SERVICE ////////////////////////////////////////////////////////////////////////////
		 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		 */
		
		
		@RequestMapping(value = "loginmethod/list", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON lisAddLoginMethods(@RequestBody FiltroDTO filtroDTO) {
			logger.info("listSecuences  " + filtroDTO.toString());
			
			return obtenerMensajeJSON(loginmethod.findAll(filtroDTO));
	    }
		
		@RequestMapping(value = "loginmethod/save", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON saveAddLoginMethod(@RequestBody LoginMethod loginMethod) {
			logger.info("grabando el parametro....");
			loginmethod.save(loginMethod);
			return obtenerMensajeJSON(loginMethod);		
	    }
		
		@RequestMapping(value = "loginmethod/update", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON updateAddLoginMethod(@RequestBody LoginMethod loginMethod) {
			logger.info("grabando el parametro....");
			loginmethod.update(loginMethod);
			return obtenerMensajeJSON(loginMethod);
	    }
		
		@RequestMapping(value = "loginmethod/delete", method = RequestMethod.POST)
	    @ResponseBody
	    public MensajeJSON deleteAddLoginMethod(@RequestBody LoginMethod loginMethod) {
			logger.info("grabando el parametro....");
			loginmethod.delete(loginMethod);
			return obtenerMensajeJSON(loginMethod);		
	    }
		
//		/*
//		 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//		 /////////////////////////////////////////////// SYSUSER SERVICE ////////////////////////////////////////////////////////////////////////////
//		 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//		 */
//		
//		
//		@RequestMapping(value = "sysuser/list", method = RequestMethod.POST)
//	    @ResponseBody
//	    public List<User> listAddSysUsers(@RequestBody FiltroDTO filtroDTO) {
//			logger.info("listSecuences  " + filtroDTO.toString());
//			
//			return sysuserservice.findAll(filtroDTO);
//	    }
//		
//		@RequestMapping(value = "sysuser/save", method = RequestMethod.POST)
//	    @ResponseBody	    
//	    public MensajeJSON saveAddSysUser(@RequestBody User sysuser) {
//			logger.info("grabando el parametro....");
//			sysuserservice.save(sysuser);
//			return obtenerMensajeJSON(sysuser);
//	    }
//		
////		@RequestMapping(value = "sysuser/update1", method = RequestMethod.POST)
////	    @ResponseBody	    
////	    public MensajeJSON updateAddSysUser1(@RequestBody User sysuser) {
////			logger.info("grabando el parametro....");
////			sysuserservice.update(sysuser);
////			return obtenerMensajeJSON(sysuser);
////	    }
//		
//		@RequestMapping(value = "sysuser/update", method = RequestMethod.POST)
//	    @ResponseBody
//	    public User updateAddSysUser(@RequestBody User sysuser) {
//			logger.info("grabando el parametro....");
//			sysuserservice.update(sysuser);
//			return sysuser;			
//	    }
//
//		@RequestMapping(value = "sysuser/logueo", method = RequestMethod.POST)
//	    @ResponseBody
//	    public User validatUser(@RequestBody User sysuser) {
//			logger.info("grabando el parametro....");
//			sysuser=sysuserservice.valid(sysuser);
//			return sysuser;		
//	    }
//		
//		@RequestMapping(value = "sysuser/delete", method = RequestMethod.POST)
//	    @ResponseBody
//	    public User deleteAddSysUser(@RequestBody User sysuser) {
//			logger.info("grabando el parametro....");
//			sysuserservice.delete(sysuser);
//			return sysuser;		
//	    }
		
		
		
}
